| Message |
There is a knock counter that is re-calculated for each complete engine cycle. This just counts up to 6 for the number of knocking cylinders per cycle. The ECU then uses this count to calculate how much ignition timing to drop. This is simply the knock count multiplied by a ROM constant. The factory ROM constant is 1.51 degrees of retard per knock. So, if all 6 cylinders knock in one cycle, you instantly get 6 * 1.51 = 9.06 degrees of retard. If there is no knock (knock counter is zero), the ECU starts auto-advancing timing at a rate of 0.101 degrees per 100ms of no-knock operation. What I am logging in my software are the RAM variables that the ECU adjusts the final ignition timing by. In the video I posted these are called "Knock Timing - Actual, Knock Timing - Closed Loop, Knock Timing - High Load". The variables that are used depend on what the engine is doing. i.e. if it is in the closed-loop area of the ignition map, if it is high-load/open-loop, or if it is below a certain load threshold (in which case no timing adjustment happens). The closed/open loop variables are re-calculated every second that the ECU remains in the closed-loop area of the ignition map. The open-loop timing is simply a percentage of the closed loop timing.
|
 |